Solid-state memory devices, also known as solid state drives (SSD) encompass rewritable non-volatile memory devices which use electronic circuitry such as NAND Flash memories for storing data. Currently, solid-state memory devices are starting to replace conventional storage devices such as hard disk drives and optical disk drives in some arenas, such as in mass storage applications for laptops or desktops. Solid state memory devices are also investigated for replacing conventional storage devices in other areas such as in enterprise storage systems. This is because solid state memory devices offer exceptional bandwidth as well as excellent random I/O (input/output) performance along with an appreciated robustness due to lack of moveable parts.
However, writing data to flash memory devices requires paying attention to specifics in the flash technology: NAND Flash memory is organized in pages and blocks. Multiple pages form a block. While typically read and write operations can be applied to pages as a smallest unit of such operation, erase operations can only be applied to entire blocks. And while in other storage technologies outdated data can simply be overwritten by new data, flash technology requires an erase operation before new data can be written to an erased block.
For the reason that in flash technology erase operations take much longer than read or write operations, a writing technique is applied called “write out of place” in which new or updated data is written to some free page offered by a free page allocator instead of writing it to the same page where the outdated data resides. The page containing the outdated data is invalidated in this process. At some point in time, a process called “garbage collection” frees blocks for new writes by selecting a block from a set of blocks holding user data and moving to the content of all valid pages of that block to free pages in different blocks. As a result, the subject block finally comprises invalid pages only and can be erased. While this procedure requires some additional write operations in excess, it is apparent that by such approach immediate as well as frequent erase operations are avoided which would contribute to a much higher overall processing than an overhead of some additional write operations do.
In view of the above, an efficient write scheme is desired showing a good write performance.